package van.planifolia.dao;

import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;

/**
 * Created by Intellij IDEA<br>
 *
 * @author Planifolia.Van
 * @version 1.0
 * @date 2022/11/14 17:39
 */
public interface BookDao {
    /**
     * 根据用户名查询用户的余额信息
     * @param username 用户名字
     * @return 用户的余额信息
     */
    @Select("select balance from account where username = #{username}")
    int selectAccount(String username);

    /**
     * 根据书本编号查询书本库存
     * @param isbn 书本编号
     * @return 书本的库存
     */
    int selectBookStock(String isbn);

    /**
     * 根据isbn查询书本的价格
     * @param isbn 书本编号
     * @return 书本的价格
     */
    @Select("select price from book where isbn = #{isbn}")
    int selectBookPrice(String isbn);

    /**
     * 更新账户的信息
     * @param username 用户的账号
     * @param price 书本的价格
     */
    @Update("update account set balance = balance - #{price} where username=#{username}")
    void updateAccount(@Param("username") String username,@Param("price") int price);

    /**
     * 更新书本库存的信息
     * @param isbn 书本的编号
     */
    void updateBookStock(String isbn);
}
